// 一副扑克牌一共54张牌
// 3个玩家，每人17张，底牌3张
// 54张牌：4个花色（♠、♥、♣、♦）；每个花色点数是：2、3、4、5、6、7、8、9、10、J、Q、K、A；大王、小王

// 获取随机数函数
function randomNumber(min,max){
    return parseInt(Math.random()*(max-min+1)+min);
}


// 思路：
// 1.组合牌：点数和花色组合，在加大小王
// 2.洗牌：打乱所有牌的原有顺序
// 3.发牌：3个玩家，每人17张，底牌3张
// 4.排序：需要对每个玩家的牌进行排序
function list(player){
    player.sort(function(a,b){
        return a.id-b.id;
    });
    return player;
}

// 5.输出
function print(player){
    let str="";//拼接牌
    for(let i=0;i<player.length;i++){
        str+=player[i].type+player[i].num+"  ";
    }
    return str;

}


function main() {
    // 1.组合牌：点数和花色组合，在加大小王
    // 所有的牌放在数组,每一张牌是一个对象
    // {
    //     id:1,//用于排序
    //     type:"♠",
    //     num:3
    // }
    let cardsArr=[];
    let typeArr=["♠","♥","♣","♦"];//花色数组
    let numArr=[2,3,4,5,6,7,8,9,10,"J","Q","K","A"];//点数数组
    let id=1;//记录牌的顺序，方便后续排序
    for(let i=0;i<numArr.length;i++){
        for(let j=0;j<typeArr.length;j++){
            let obj={
                id:id++,
                type:typeArr[j],
                num:numArr[i]
            }
            cardsArr.push(obj);
        }
    }
    // 单独添加大小王
    cardsArr.push({id:53,type:"",num:"小王"});
    cardsArr.push({id:54,type:"",num:"大王"});
    // 2.洗牌：打乱所有牌的原有顺序
    for(let i=0;i<cardsArr.length;i++){
        // 随机获取一个数组下标，和当前遍历到的下标所对应的值进行交换
        // 25    0
        // i=1  34
        let x=randomNumber(0,cardsArr.length-1);//获取0-53之间的随机下标
        [cardsArr[i],cardsArr[x]]=[cardsArr[x],cardsArr[i]];
    }

    // 3.发牌：3个玩家，每人17张，底牌3张
    // let player1=cardsArr.slice(0,17);
    // let player2=cardsArr.slice(17,34);
    // let player3=cardsArr.slice(34,51);
    // let player4=cardsArr.slice(51);
    let player1=[];
    let player2=[];
    let player3=[];
    let player4=[];
    for(let i=0;i<6;i++){
        if(i==0){
            player1.push(...cardsArr.splice(0,2));
            player2.push(...cardsArr.splice(0,2));
            player3.push(...cardsArr.splice(0,2));
        }else{
            player1.push(...cardsArr.splice(0,3));
            player2.push(...cardsArr.splice(0,3));
            player3.push(...cardsArr.splice(0,3));
        }
       
    }
    player4=cardsArr;

    // console.log(player1)
    // console.log(player2)
    // console.log(player3)
    // console.log(player4)


    // 4.排序：需要对每个玩家的牌进行排序
    player1=list(player1);
    player2=list(player2);
    player3=list(player3);
    player4=list(player4);

    // 5.输出
    console.log("玩家1：",print(player1));
    console.log("玩家2：",print(player2));
    console.log("玩家3：",print(player3));
    console.log("底牌：",print(player4));
}
main();